<template>
    <div>
        <!-- 商品列表区 -->
        <div class="mui-card" v-for=" (v,i) in carlist" :key="v.id">
            <div class="mui-card-content-inner">
                <!-- 按钮的 change 事件是 mui 提供的 -->
                <mt-switch v-model="$store.getters.renderIsBuy[v.id]" @change="selectedButton(v.id, $store.getters.renderIsBuy[v.id])"></mt-switch>
                <img :src="v.thumb_path">
                <div>
                    <strong>{{ v.title }}</strong>
                    <p>
                        <output>￥{{ v.sell_price }}</output>
                        <carNumBox :goodsId="v.id"></carNumBox>
                        <!-- 或者直接传把值过去，都行,但是子组件是需要商品 id 的，需要为其他操作提供商品 id ，就直接传id过去-->
                        <!-- <carNumBox :goodsIdNum="$store.getters.renderGoodsNum[v.id]"></carNumBox> -->
                        <a href="javascript:void(0)" @click.prevent="removeGoods( v.id, i )">删除</a>
                    </p>
                </div>
            </div>
        </div>
        <!-- 结算区 -->
        <div class="mui-card">
            <div class="mui-card-content-inner">
                <section>
                    <p>总计（不含运费）</p>
                    <p>已勾选商品<b> {{$store.getters.renderSelectedGoodsTotal.totalNum}} </b>件，总价：<output>￥{{$store.getters.renderSelectedGoodsTotal.totalPrice}}</output></p>
                </section>
                <mt-button type="danger">去结算</mt-button>
            </div>
        </div>
    </div>
</template>

<script>
    import carNumBox from './shopcar_numbox.vue'
    export default {
        data () {
            return {
                carlist: [], 
                /* 后台返回来的数据里没有购买的商品数量的数据，
                其实在添加到购物车之后，某个时间点那些用户的基本数据应该post到后台的，
                这里应该是能获取到一系列后台有关用户添加的商品的数据信息，从而直接拿数据去用的，
                但是现在没办法从后台获取，只好从状态库里去拿了，造成拿数据非常繁琐，
                但是这个数据存取模型，还是非常值得学习的 */
            }
        },
        created () {
            this.getshopcarlist();
        },
        methods: {
            getshopcarlist () {
                const tempid = [];
                this.$store.state.car.forEach( v => tempid.push(v.id) );
                if (tempid.length <= 0 ) return;
                this.$http.get( 'api/goods/getshopcarlist/' + tempid.join(',') ).then(res => {
                    if (res.body.status === 0) {
                        this.carlist = res.body.message;
                    } else {
                        this.$toast('获取购物车数据失败')
                    }
                })
            },
            removeGoods (id,i) {
                this.carlist.splice(i,1);
                // this.$store.commit('delGoods',{ id });
                this.$store.commit('delGoods',id);
            },
            selectedButton (id,v) {
                // console.log(id + '...' +v);
                this.$store.commit('selectedGoods',{id , isbuy:v})
            },
        },
        components: {
            carNumBox,
        },
    }
</script>

<style lang="scss" scoped>
    .mui-card-content-inner {
        display: flex;
        align-items: center;
        justify-content: space-between;
        img {
            width: 60px;
        }
        strong {
            font-size: 13px;
        }
        b, output {
            color: #f00;
            font-weight: 600;
        }
        p {
            margin-bottom: 0;
        }
    }
</style>